package com.tongda.core.vo;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public class Dish implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 是否是套餐
	 */
	protected String isSet;
	/**
	 * 套餐的描述
	 */
	protected String dishSetDishes;
	/**
	 * 套餐的id
	 */
	protected String dishSetId;

	/**
	 * 套餐内菜品的id
	 */
	protected String dsDishesId;

	protected String dishesId;
	protected String categoryId;

	/**
	 * 菜系ID
	 */
	protected String dashesStyleIdArray;
	/**
	 * 菜肴编码
	 */
	protected String dishesCode;
	/**
	 * 客户端查询用的编码
	 */
	protected String searchCode;
	/**
	 * 查询中后高亮的index 如01 表示第一个到第二个字符高亮显示
	 */
	protected List<String> highlightCode;
	/**
	 * 菜肴单位名称
	 */
	protected String dishesUnitName;
	/**
	 * 菜肴名称
	 */
	protected String dishesName;
	/**
	 * 菜肴状态 1未上菜 2已上菜 3未上菜退菜 4已上菜退菜 (电子菜谱)菜肴状态 0未下单 1已下单 2已退菜
	 */
	private String dishesStatus;
	/**
	 * 下单时间
	 */
	private String fixedTime;
	/**
	 * 最后一次催菜时间
	 */
	private String lastUrgeTime;
	/**
	 * 单价菜点餐数量
	 */
	private float unitNum;

	/**
	 * 套餐内菜肴数量
	 */
	private BigDecimal dsUnitNum;

	/**
	 * 菜肴 单位名称
	 */
	private String unitName;
	/**
	 * 忌口
	 */
	private String avoidfoodIdArray;
	private String avoidfoodNameArray;
	/**
	 * 口味
	 */
	private String tasteIdArray;
	private String tasteNameArray;
	/**
	 * 外语名称
	 */
	protected String foreignName;
	/**
	 * 是否计入最低消费
	 */
	protected String isAddMinCharge;
	/**
	 * 是否打折
	 */
	protected String isOnsale;
	/**
	 * 是否推荐菜
	 */
	protected String isRecommend;
	/**
	 * 是否时价
	 */
	protected String isRulingPrice;
	/**
	 * 是否招牌菜
	 */
	protected String isSpecialty;
	/**
	 * 是否停售
	 */
	protected String isStopSell;
	/**
	 * 是否外卖
	 */
	protected String isTakeout;
	/**
	 * 食材ID
	 */
	protected String materialIdArray;
	/**
	 * 会员价
	 */
	protected BigDecimal memberPrice;
	/**
	 * 备注
	 */
	protected String notes;
	/**
	 * 单价
	 */
	protected BigDecimal price;
	/**
	 * 辣度
	 */
	protected String pungentLevel;
	/**
	 * 餐厅 id
	 * 
	 */
	protected String restId;
	/**
	 * 销售数量
	 */
	protected float saleNum;
	/**
	 * 显示顺序
	 */
	protected int showSeq;
	protected int showSeqTakeout;
	protected int showSeqRecommend;
	protected String isUserDefined;

	protected String discountType;
	protected BigDecimal realUnitPrice;
	/*
	 * 电子菜谱的一些属性
	 */
	// 购物车中菜品的主键id
	private Integer _id;
	// 推荐菜描述
	private String recommendDesc;
	// 招牌菜描述
	private String specialtyDesc;
	// 特价菜肴的特价价格
	private BigDecimal specialPrice;
	// 菜肴对应的特价菜肴的属性集合
	private List<SpecialDishe> specialDishes;
	// 套餐内的应有菜品
	private List<DishesSetDishes> dsDishes;
	// 菜肴图片集合
	private List<DishesPic> disImgs;
	// 单独的菜肴图片网址集合
	private List<String> picUrls;
	// 单独的菜肴低分辨图片网址集合
	private List<String> lowpicUrls;
	// 口味集合拼接成的字符串
	private String dishesTasteStr;
	// 菜系集合拼接成的字符串
	private String dishesStyleStr;
	// 食材集合拼接成的字符串
	private String dishesMaterialStr;
	// 自己设定的 辣度
	private int ladu_value;
	// 购物车中的备注
	private String billnotes;
	// 时价价格
	private String rulingPrice;
	// 购物车中每一条该菜肴的数量（给购物车用）
	private float ordersalenum = 1;
	// 该菜肴是否是账单的菜肴“0”表示不是“1”表示是
	private String isDinerDish = "0";
	// 购物车中菜肴对应的账单菜肴id
	private String dinerBillDisheId;
	// 在菜肴数据库中加入这个属性是为了显示该菜肴在购物车中一共有多少份
	private int dishorderNum = 0;
	// 账单菜肴的菜肴应有id
	private String localDishesId;

	public String getDiscountType() {
		return discountType;
	}

	public void setDiscountType(String discountType) {
		this.discountType = discountType;
	}

	public BigDecimal getRealUnitPrice() {
		return realUnitPrice;
	}

	public void setRealUnitPrice(BigDecimal realUnitPrice) {
		this.realUnitPrice = realUnitPrice;
	}

	/**
	 * 估清
	 **/

	protected Float estimate;

	public String getIsUserDefined() {
		return isUserDefined;
	}

	public void setIsUserDefined(String isUserDefined) {
		this.isUserDefined = isUserDefined;
	}

	/**
	 * 评价总分
	 */
	protected int totalScore;

	/**
	 * @param string
	 */
	public Dish(String n) {
		this.dishesName = n;
	}

	public Dish() {
		super();
	}

	public String getDishesId() {
		return dishesId;
	}

	public void setDishesId(String dishesId) {
		this.dishesId = dishesId;
	}

	public String getDashesStyleIdArray() {
		return dashesStyleIdArray;
	}

	public void setDashesStyleIdArray(String dashesStyleIdArray) {
		this.dashesStyleIdArray = dashesStyleIdArray;
	}

	public String getDishesCode() {
		return dishesCode;
	}

	public void setDishesCode(String dishesCode) {
		this.dishesCode = dishesCode;
	}

	public String getDishesName() {
		return dishesName;
	}

	public void setDishesName(String dishesName) {
		this.dishesName = dishesName;
	}

	public String getForeignName() {
		return foreignName;
	}

	public void setForeignName(String foreignName) {
		this.foreignName = foreignName;
	}

	public String getIsAddMinCharge() {
		return isAddMinCharge;
	}

	public void setIsAddMinCharge(String isAddMinCharge) {
		this.isAddMinCharge = isAddMinCharge;
	}

	public String getIsOnsale() {
		return isOnsale;
	}

	public void setIsOnsale(String isOnsale) {
		this.isOnsale = isOnsale;
	}

	public String getIsRecommend() {
		return isRecommend;
	}

	public void setIsRecommend(String isRecommend) {
		this.isRecommend = isRecommend;
	}

	public String getIsRulingPrice() {
		return isRulingPrice;
	}

	public void setIsRulingPrice(String isRulingPrice) {
		this.isRulingPrice = isRulingPrice;
	}

	public String getIsSpecialty() {
		return isSpecialty;
	}

	public void setIsSpecialty(String isSpecialty) {
		this.isSpecialty = isSpecialty;
	}

	public String getIsStopSell() {
		return isStopSell;
	}

	public void setIsStopSell(String isStopSell) {
		this.isStopSell = isStopSell;
	}

	public String getIsTakeout() {
		return isTakeout;
	}

	public void setIsTakeout(String isTakeout) {
		this.isTakeout = isTakeout;
	}

	public String getMaterialIdArray() {
		return materialIdArray;
	}

	public void setMaterialIdArray(String materialIdArray) {
		this.materialIdArray = materialIdArray;
	}

	public BigDecimal getMemberPrice() {
		return memberPrice;
	}

	public void setMemberPrice(BigDecimal memberPrice) {
		this.memberPrice = memberPrice;
	}

	public String getNotes() {
		return notes;
	}

	public void setNotes(String notes) {
		this.notes = notes;
	}

	public BigDecimal getPrice() {
		return price;
	}

	public void setPrice(BigDecimal price) {
		this.price = price;
	}

	public String getPungentLevel() {
		return pungentLevel;
	}

	public void setPungentLevel(String pungentLevel) {
		this.pungentLevel = pungentLevel;
	}

	public String getRestId() {
		return restId;
	}

	public void setRestId(String restId) {
		this.restId = restId;
	}

	public float getSaleNum() {
		return saleNum;
	}

	public void setSaleNum(float saleNum) {
		this.saleNum = saleNum;
	}

	public int getShowSeq() {
		return showSeq;
	}

	public void setShowSeq(int showSeq) {
		this.showSeq = showSeq;
	}

	public int getShowSeqTakeout() {
		return showSeqTakeout;
	}

	public void setShowSeqTakeout(int showSeqTakeout) {
		this.showSeqTakeout = showSeqTakeout;
	}

	public int getShowSeqRecommend() {
		return showSeqRecommend;
	}

	public void setShowSeqRecommend(int showSeqRecommend) {
		this.showSeqRecommend = showSeqRecommend;
	}

	public String getTasteIdArray() {
		return tasteIdArray;
	}

	public void setTasteIdArray(String tasteIdArray) {
		this.tasteIdArray = tasteIdArray;
	}

	public int getTotalScore() {
		return totalScore;
	}

	public void setTotalScore(int totalScore) {
		this.totalScore = totalScore;
	}

	public String getDishesStatus() {
		return dishesStatus;
	}

	public void setDishesStatus(String dishesStatus) {
		this.dishesStatus = dishesStatus;
	}

	public String getSearchCode() {
		return searchCode;
	}

	public void setSearchCode(String searchCode) {
		this.searchCode = searchCode;
	}

	public String getFixedTime() {
		return fixedTime;
	}

	public void setFixedTime(String fixedTime) {
		this.fixedTime = fixedTime;
	}

	public float getUnitNum() {
		return unitNum;
	}

	public void setUnitNum(float unitNum) {
		this.unitNum = unitNum;
	}

	public String getUnitName() {
		return unitName;
	}

	public void setUnitName(String unitName) {
		this.unitName = unitName;
	}

	public String getAvoidfoodIdArray() {
		return avoidfoodIdArray;
	}

	public void setAvoidfoodIdArray(String avoidfoodIdArray) {
		this.avoidfoodIdArray = avoidfoodIdArray;
	}

	public String getAvoidfoodNameArray() {
		return avoidfoodNameArray;
	}

	public void setAvoidfoodNameArray(String avoidfoodNameArray) {
		this.avoidfoodNameArray = avoidfoodNameArray;
	}

	public String getTasteNameArray() {
		return tasteNameArray;
	}

	public void setTasteNameArray(String tasteNameArray) {
		this.tasteNameArray = tasteNameArray;
	}

	public String getLastUrgeTime() {
		return lastUrgeTime;
	}

	public void setLastUrgeTime(String lastUrgeTime) {
		this.lastUrgeTime = lastUrgeTime;
	}

	public String getDishesUnitName() {
		return dishesUnitName;
	}

	public void setDishesUnitName(String dishesUnitName) {
		this.dishesUnitName = dishesUnitName;
	}

	public List<String> getHighlightCode() {
		return highlightCode;
	}

	public void setHighlightCode(List<String> highlightCode) {
		this.highlightCode = highlightCode;
	}

	public int getStrIndexOfSearchCode(String code) {
		if (searchCode != null && !"".equals(searchCode)) {
			// System.out.println(code+"----"+searchCode.indexOf(code));
			return searchCode.indexOf(code) * 2
					+ (searchCode.length() - searchCode.indexOf(code));
		}
		return 0;
	}

	public String getCategoryId() {
		return categoryId;
	}

	public void setCategoryId(String categoryId) {
		this.categoryId = categoryId;
	}

	public Float getEstimate() {
		return estimate;
	}

	public void setEstimate(Float estimate) {
		this.estimate = estimate;
	}

	// public boolean isSet() {
	// return isSet;
	// }
	// public void setSet(boolean isSet) {
	// this.isSet = isSet;
	// }
	public String getIsSet() {
		return isSet;
	}

	public void setIsSet(String isSet) {
		this.isSet = isSet;
	}

	public String getDishSetDishes() {
		return dishSetDishes;
	}

	public void setDishSetDishes(String dishSetDishes) {
		this.dishSetDishes = dishSetDishes;
	}

	public String getDishSetId() {
		return dishSetId;
	}

	public void setDishSetId(String dishSetId) {
		this.dishSetId = dishSetId;
	}

	public String getDsDishesId() {
		return dsDishesId;
	}

	public void setDsDishesId(String dsDishesId) {
		this.dsDishesId = dsDishesId;
	}

	public BigDecimal getDsUnitNum() {
		return dsUnitNum;
	}

	public void setDsUnitNum(BigDecimal dsUnitNum) {
		this.dsUnitNum = dsUnitNum;
	}

	public Integer get_id() {
		return _id;
	}

	public void set_id(Integer _id) {
		this._id = _id;
	}

	public String getRecommendDesc() {
		return recommendDesc;
	}

	public void setRecommendDesc(String recommendDesc) {
		this.recommendDesc = recommendDesc;
	}

	public String getSpecialtyDesc() {
		return specialtyDesc;
	}

	public void setSpecialtyDesc(String specialtyDesc) {
		this.specialtyDesc = specialtyDesc;
	}

	public BigDecimal getSpecialPrice() {
		return specialPrice;
	}

	public void setSpecialPrice(BigDecimal specialPrice) {
		this.specialPrice = specialPrice;
	}

	public List<SpecialDishe> getSpecialDishes() {
		return specialDishes;
	}

	public void setSpecialDishes(List<SpecialDishe> specialDishes) {
		this.specialDishes = specialDishes;
	}

	public List<DishesSetDishes> getDsDishes() {
		return dsDishes;
	}

	public void setDsDishes(List<DishesSetDishes> dsDishes) {
		this.dsDishes = dsDishes;
	}

	public List<DishesPic> getDisImgs() {
		return disImgs;
	}

	public void setDisImgs(List<DishesPic> disImgs) {
		this.disImgs = disImgs;
	}

	public List<String> getPicUrls() {
		return picUrls;
	}

	public void setPicUrls(List<String> picUrls) {
		this.picUrls = picUrls;
	}

	public List<String> getLowpicUrls() {
		return lowpicUrls;
	}

	public void setLowpicUrls(List<String> lowpicUrls) {
		this.lowpicUrls = lowpicUrls;
	}

	public String getDishesTasteStr() {
		return dishesTasteStr;
	}

	public void setDishesTasteStr(String dishesTasteStr) {
		this.dishesTasteStr = dishesTasteStr;
	}

	public String getDishesStyleStr() {
		return dishesStyleStr;
	}

	public void setDishesStyleStr(String dishesStyleStr) {
		this.dishesStyleStr = dishesStyleStr;
	}

	public String getDishesMaterialStr() {
		return dishesMaterialStr;
	}

	public void setDishesMaterialStr(String dishesMaterialStr) {
		this.dishesMaterialStr = dishesMaterialStr;
	}

	public int getLadu_value() {
		return ladu_value;
	}

	public void setLadu_value(int ladu_value) {
		this.ladu_value = ladu_value;
	}

	public String getBillnotes() {
		return billnotes;
	}

	public void setBillnotes(String billnotes) {
		this.billnotes = billnotes;
	}

	public String getRulingPrice() {
		return rulingPrice;
	}

	public void setRulingPrice(String rulingPrice) {
		this.rulingPrice = rulingPrice;
	}

	public float getOrdersalenum() {
		return ordersalenum;
	}

	public void setOrdersalenum(float ordersalenum) {
		this.ordersalenum = ordersalenum;
	}

	public String getIsDinerDish() {
		return isDinerDish;
	}

	public void setIsDinerDish(String isDinerDish) {
		this.isDinerDish = isDinerDish;
	}

	public String getDinerBillDisheId() {
		return dinerBillDisheId;
	}

	public void setDinerBillDisheId(String dinerBillDisheId) {
		this.dinerBillDisheId = dinerBillDisheId;
	}

	public int getDishorderNum() {
		return dishorderNum;
	}

	public void setDishorderNum(int dishorderNum) {
		this.dishorderNum = dishorderNum;
	}

	public String getLocalDishesId() {
		return localDishesId;
	}

	public void setLocalDishesId(String localDishesId) {
		this.localDishesId = localDishesId;
	}

}
